home *** CD-ROM | disk | FTP | other *** search
/ Fritz: All Fritz / All Fritz.zip / All Fritz / FILES / PROGNG_C / TPTC17G.LZH / TPTCSYS.UNH < prev    next >
Text File  |  1988-05-03  |  6KB  |  264 lines

  1.  
  2. /* Unit header for: TPTCSYS.C -- Made by TPTC - Translate Pascal to C */
  3.  
  4. #ifndef TPTCSYS_LOADED  /* prevent multiple loading */
  5. #define TPTCSYS_LOADED
  6.  
  7.  
  8. #ifdef IN_TPTCSYS  /* define globals here? */
  9. #define extern
  10. #endif
  11.  
  12.       enum { maxint       = 0x7fff };
  13.  
  14.  
  15. /*
  16.  * C language declarations passed directly to TPTCSYS.UNH
  17.  *
  18.  */ 
  19.  
  20.   #undef extern
  21.  
  22.   #include <stdio.h>
  23.  
  24.   #ifdef IN_TPTCSYS
  25.   #define extern
  26.   #endif
  27.  
  28.   #define chr(n)          ((char)(n))
  29.   #define integer         int
  30.   #define word            unsigned
  31.   #define longint         long
  32.   #define real            double
  33.   #define boolean         int
  34.   #define false           0
  35.   #define true            1
  36.   #define nil             NULL
  37.   #define STRSIZ 255      /* default string length */
  38.  
  39.   /* set support */
  40.   #define __  -2    /* thru .. */
  41.   #define _E  -1    /* end of set marker */
  42.  
  43.  
  44.    
  45.       typedef int /* 0..0xFF */ byte; 
  46.       typedef byte         shortint; 
  47.       typedef char         *pointer; 
  48.       typedef pointer      setrec; 
  49.      typedef char *string;
  50.  
  51.       typedef struct text { 
  52.          char         fname[65]; /* the actual filename */ 
  53.         FILE     *filevar;      /* C's file variable */
  54.       } text; 
  55.  
  56.    
  57.       extern text         output; 
  58.       extern text         input; 
  59.       extern integer      paramcount; 
  60.       extern word         ioresult; 
  61.       extern pointer      *tptc_argv; 
  62.       extern word         dseg; 
  63.       extern word         sseg; 
  64.       extern word         cseg; 
  65.  
  66.  
  67.    /* 
  68.     * Standard procedures and functions
  69.     *
  70.     */ 
  71.  
  72.    
  73. extern real  sin(real         n);
  74.    
  75. extern real  cos(real         n);
  76.    
  77. extern real  tan(real         n);
  78.    
  79. extern real  sqr(real         n);
  80.    
  81. extern real  sqrt(real         n);
  82.    
  83. extern longint trunc(real         r);
  84.    
  85. extern real  round(real         r);
  86.    
  87. extern real  dint(real         r);
  88.  
  89.    
  90. extern integer pred(integer      b);
  91.    
  92. extern integer succ(integer      b);
  93.    
  94. extern integer ord(char         c);
  95.    
  96. extern word  hi(word         w);
  97.    
  98. extern word  lo(word         w);
  99.    
  100. extern void  inc(byte *       b);
  101.    
  102. extern void  dec(byte *       b);
  103.  
  104.    
  105. extern longint memavail(void);
  106.    
  107. extern longint maxavail(void);
  108.    
  109. extern void  dispose(pointer      ptr);
  110.    
  111. extern void  pfreemem(pointer      ptr,
  112.                       integer      size);
  113.  
  114.    
  115. extern char * paramstr(integer      n);
  116.    
  117. extern char  upcase(char         c);
  118.    
  119. extern void  delete(char *       s,
  120.                     integer      posit,
  121.                     integer      number);
  122.    
  123. extern char * copy(char *       s,
  124.                   integer      from,
  125.                   integer      len);
  126.    
  127. extern void  val(char *       s,
  128.                  real *       res,
  129.                  integer *    code);
  130.    
  131. extern void  move(pointer      tomem,
  132.                   pointer      fmmem,
  133.                   word         bytes);
  134.    
  135. extern void  fillchar(pointer      dest,
  136.                       integer      size,
  137.                       char         value);
  138.    
  139. extern integer length(char *       s);
  140.  
  141.  
  142.    /*
  143.     * These will probably change when binary file translation is implemented
  144.     *
  145.     */ 
  146.  
  147.    
  148. extern boolean eof(text *       fd);
  149.    
  150. extern void  flush(text *       fd);
  151.    
  152. extern void  close(text *       fd);
  153.    
  154. extern void  assign(text *       fd,
  155.                     char *       name);
  156.    
  157. extern void  reset(text *       fd);
  158.    
  159. extern void  rewrite(text *       fd);
  160.    
  161. extern void  append(text *       fd);
  162.    
  163. extern void  settextbuf(text *       fd,
  164.                         pointer      buffer,
  165.                         word         size);
  166.    
  167. extern void  seek(text *       fd,
  168.                   word         rec);
  169.    
  170. extern boolean seekeof(text *       fd);
  171.  
  172.  
  173.  
  174.    /* 
  175.     * Additional procedures called by translated code 
  176.     *
  177.     */ 
  178.  
  179.   setrec setof(byte element,...);
  180.         /* construct a set; variable parameter list */ 
  181.  
  182.    
  183. extern boolean inset(byte         item,
  184.                    setrec       theset);
  185.         /* is an item a member of a set? */ 
  186.  
  187.    
  188. extern integer spos(char *       str1,
  189.                   char *       str2);
  190.         /* returns the position of a substring within a longer string */ 
  191.  
  192.    
  193. extern integer cpos(char         c,
  194.                   char *       str2);
  195.         /* returns the position of a character within a string */ 
  196.  
  197.    
  198. extern char * ctos(char         c);
  199.         /* convert a character into a string */ 
  200.  
  201.  
  202.   string scat(string control, ...);
  203.         /* concatenate strings according to printf style control and
  204.        return pointer to the result */ 
  205.  
  206.   void sbld(string dest,
  207.             string control, ...);
  208.         /* build a string according to a control string (works like sprintf
  209.        with with special handling to allow source and destination
  210.        variables to be the same) */ 
  211.  
  212.   int tscanf(text *fd,
  213.              string control, ...);
  214.         /* functions like fscanf but allows whole-line reads into
  215.        string variables */ 
  216.  
  217.   void tprintf(text *fd,
  218.                string control, ...);
  219.         /* functions like fprintf */ 
  220.  
  221.  
  222.  
  223.    /* The following identfiers are 'builtin' to the translator and
  224.       should not be defined here.  If any of these are redefined, the
  225.       corresponding special translation will be disabled. */ 
  226.  
  227.    /* 
  228.     *   function Pos(key: string; line: string): integer;
  229.     *   procedure Chr(i: integer): char;
  230.     *   procedure Str(v: real; dest: string);
  231.     *   procedure Exit;
  232.     *
  233.     *   var 
  234.     *      Mem:    array[0..$FFFF:0..$FFFF] of byte;
  235.     *      MemW:   array[0..$FFFF:0..$FFFF] of word;
  236.     *      Port:   array[0..$1000] of byte; {i/o ports}
  237.     *      PortW:  array[0..$1000] of word;
  238.     *   type
  239.     *      string = array[1..255] of char;
  240.     *
  241.     */ 
  242.  
  243.  
  244.   /*
  245.    * rename some tp4 identifiers that conflict with tc1.0 identifiers
  246.    */
  247.   #define intr    Pintr
  248.   #define getdate Pgetdate
  249.   #define gettime Pgettime
  250.   #define setdate Psetdate
  251.   #define settime Psettime
  252.   #define keep    Pkeep
  253.  
  254.  
  255. /*
  256.  * Implementation of support procedures
  257.  *
  258.  */ 
  259.  
  260.  
  261. extern void  tptcsys_init(int argc, char **argv);
  262. #undef extern
  263. #endif
  264.